# TODO 列表的使用
# 列表是 Python 中的一种数据结构，它可以存储多个值，这些值可以是任何数据类型，包括整数、浮点数、字符串和其他列表。列表是可变的，这意味着你可以添加、删除或修改列表中的元素。
# 在 Python 中，列表用方括号 [ ] 表示，其中的元素由逗号分隔。例如，下面是一个包含整数和字符串的列表：

# 在 Python 中，列表（list）是一个可变的、有序的元素序列。你可以在列表中存储任何类型的数据，比如整数、字符串、其他列表，甚至是自定义对象。
# 以下是一些关于 Python 列表的基本用法：
# 创建列表：你可以使用方括号 [] 来创建一个新的列表，列表中的元素用逗号 , 分隔。
# 在使用列表时，有几点需要注意：
# 在访问列表元素时，你需要确保索引不会越界。也就是说，索引应该在 0 和 len(numbers) - 1 之间。如果索引越界，Python 会抛出 IndexError。

numbers = [1, 2, 3, 4, 5]  # 创建一个包含整数的列表
words = ["hello", "world"]  # 创建一个包含字符串的列表
mixed = [1, "two", 3.0, ["four", 5]]  # 创建一个包含不同类型元素的列表
empty = []  # 创建一个空列表

# 访问元素：你可以使用索引来访问列表中的元素。索引从 0 开始计数。
numbers = [1, 2, 3, 4, 5]
print(numbers[0])  # 输出：1
print(numbers[3])  # 输出：4
# 你也可以使用负数索引从列表的末尾开始计数。
numbers = [1, 2, 3, 4, 5]
print(numbers[-1])  # 输出：5
print(numbers[-2])  # 输出：4

# 修改元素：因为列表是可变的，所以你可以通过索引来修改列表中的元素。
numbers = [1, 2, 3, 4, 5]
numbers[0] = 100
print(numbers)  # 输出：[100, 2, 3, 4, 5]

# 添加元素：你可以使用 append() 方法向列表的末尾添加新的元素。
numbers = [1, 2, 3, 4, 5]
numbers.append(6)
print(numbers)  # 输出：[1, 2, 3, 4, 5, 6]

# 删除元素：你可以使用 del 语句或 remove() 方法来删除列表中的元素。
numbers = [1, 2, 3, 4, 5]
del numbers[0]
print(numbers)  # 输出：[2, 3, 4, 5]

numbers.remove(3)
print(numbers)  # 输出：[2, 4, 5]

# 列表长度：你可以使用 len() 函数来获取列表的长度。
numbers = [1, 2, 3, 4, 5]
print(len(numbers))  # 输出：5

# 对列表进行排序
# 请注意，这两种方法都只能用于同类型的元素，如果列表中混有不同类型的元素（比如字符串和数字混在一起），在进行排序时会引发 TypeError。如果需要对复杂数据结构进行排序，可能需要提供 key 参数来指定排序规则。
# Python 列表对象提供了两种方法进行排序：sort() 方法和 sorted() 函数。
# sort() 方法会直接修改原列表，使其按照指定的顺序进行排序。
# sorted() 函数会返回一个新的排序后的列表，而不会改变原来的列表。
# 针对上面的两种排序方式,可以传递参数进行降序排序: `reverse=True` 参数进行降序排序
my_list = [3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5]
my_list.sort(reverse=True)
print(my_list)  # 输出:[9, 6, 5, 5, 5, 4, 3, 3, 2, 1, 1]

numbers = [5, 1, 9, 3, 7]
sorted_numbers = sorted(numbers, reverse=True)
print(sorted_numbers)  # 输出：[9, 7, 5, 3, 1]
